require "import"
import "android.widget.*"
import "android.view.*"
import "os"
import "android.app.AlertDialog"
import "android.widget.PopupMenu"
import "android.content.Intent"
import "android.net.Uri"
import "android.content.Context"
import "android.os.Vibrator"
import "android.view.inputmethod.InputMethodManager"

-- Contexto e serviços
local context = service
local vibrator = context.getSystemService(Context.VIBRATOR_SERVICE)
local inputMethodManager = context.getSystemService(Context.INPUT_METHOD_SERVICE)

-- Função para esconder o teclado
local function esconderTeclado(view)
    if view then
        inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0)
    end
end

-- Caminho da pasta
local pastaFrasesBiblicas = "/sdcard/frases_biblicas"
local arquivoBiblia = pastaFrasesBiblicas .. "/biblia.txt"

-- Função para verificar e criar a pasta
local function criarPasta()
    local file = io.open(pastaFrasesBiblicas .. "/.test", "w")
    if file then
        file:close()
        os.remove(pastaFrasesBiblicas .. "/.test")
    else
        os.execute("mkdir " .. pastaFrasesBiblicas)
    end
end

-- Função para carregar versículos do arquivo .txt
local function carregarVersiculosDaPasta()
    local versiculos = {}
    local livroAtual = ""
    local capituloAtual = ""
    local file = io.open(arquivoBiblia, "r")
    if file then
        for linha in file:lines() do
            linha = linha:match("^%s*(.-)%s*$")
            if linha == "" then
            elseif linha:match("^%s*[IVXLCDM]+%s+[A-ZÇÁÉÍÓÚÂÊÔÃÕ%-]+$") then
                livroAtual = linha
            elseif linha:match("^[A-ZÇÁÉÍÓÚÂÊÔÃÕ%-]+$") then
                livroAtual = linha
            elseif linha:match("^%s*[IVXLCDM]*%s*[A-ZÇÁÉÍÓÚÂÊÔÃÕ%-]+%s+%d+$") then
                livroAtual, capituloAtual = linha:match("^(%S+%s*[IVXLCDM]*%s*[A-ZÇÁÉÍÓÚÂÊÔÃÕ%-]+)%s+(%d+)$")
            elseif linha:match("^%d+%s+") then
                local numero, texto = linha:match("^(%d+)%s+(.+)$")
                if numero and texto and livroAtual ~= "" and capituloAtual ~= "" then
                    local referencia = string.format("%s %s:%s", livroAtual, capituloAtual, numero)
                    table.insert(versiculos, {referencia = referencia, texto = texto, livro = livroAtual, capitulo = capituloAtual, versiculo = numero})
                end
            end
        end
        file:close()
        return versiculos
    end
    return nil
end

-- Variáveis globais
local versiculosAtuais = nil
local indiceAtual = 1
local livroSelecionado = nil

-- Função para exibir um versículo aleatório
function exibirVersiculoAleatorio()
    if not versiculosAtuais or #versiculosAtuais == 0 then
        textoResposta.setText("Nenhum versículo carregado. Coloque o arquivo 'biblia.txt' em " .. pastaFrasesBiblicas)
        service.speak("Nenhum versículo carregado.")
        return
    end
    indiceAtual = math.random(1, #versiculosAtuais)
    local versiculo = versiculosAtuais[indiceAtual]
    local texto = string.format(
        "📖 Versículo Aleatório:\n\n" ..
        "%s\n\n" ..
        "Referência: %s\n",
        versiculo.texto,
        versiculo.referencia
    )
    textoResposta.setText(texto)
    service.speak(versiculo.texto)
end

-- Primeiro Layout
local layout1Def = {
    LinearLayout,
    orientation = "vertical",
    layout_width = "match_parent",
    layout_height = "match_parent",
    backgroundColor = "#000000",
    padding = "10dp",
    id = "layout1",
    {
        ScrollView,
        layout_width = "match_parent",
        layout_height = "0dp",
        layout_weight = "1",
        {
            LinearLayout,
            orientation = "vertical",
            layout_width = "match_parent",
            layout_height = "wrap_content",
            {
                TextView,
                id = "textoResposta",
                layout_width = "match_parent",
                layout_height = "wrap_content",
                text = "Bem-vindo ao aplicativo de Versículos. Carregando...",
                textSize = "16sp",
                textColor = "#ffffff",
                padding = "10dp",
            },
            {
                Button,
                text = "Copiar Versículo",
                textColor = "#ffffff",
                backgroundColor = "#00AA00",
                layout_width = "match_parent",
                layout_height = "wrap_content",
                layout_margin = "10dp",
                onClick = function()
                    if versiculosAtuais and indiceAtual >= 1 and indiceAtual <= #versiculosAtuais then
                        local versiculo = versiculosAtuais[indiceAtual]
                        local textoCompleto = string.format("%s - %s", versiculo.texto, versiculo.referencia)
                        service.copy(textoCompleto)
                        vibrator.vibrate(100)
                        service.speak("Versículo copiado: " .. textoCompleto)
                    end
                end,
            },
        },
    },
    {
        LinearLayout,
        orientation = "horizontal",
        layout_width = "match_parent",
        layout_height = "wrap_content",
        gravity = "center",
        {
            Button,
            text = "Versículo Anterior",
            id = "botaoAnterior",
            textColor = "#ffffff",
            backgroundColor = "#0066AA",
            layout_width = "wrap_content",
            layout_height = "wrap_content",
            layout_margin = "5dp",
            onClick = function()
                if versiculosAtuais and indiceAtual > 1 then
                    indiceAtual = indiceAtual - 1
                    local versiculo = versiculosAtuais[indiceAtual]
                    local texto = string.format(
                        "📖 Versículo %d de %d:\n\n%s\n\nReferência: %s\n",
                        indiceAtual, #versiculosAtuais, versiculo.texto, versiculo.referencia
                    )
                    textoResposta.setText(texto)
                    service.speak(versiculo.texto)
                else
                    textoResposta.setText("Este é o primeiro versículo ou nenhum arquivo carregado!")
                    service.speak("Este é o primeiro versículo ou nenhum arquivo carregado!")
                end
            end,
        },
        {
            Button,
            text = "Próximo Versículo",
            id = "botaoProxima",
            textColor = "#ffffff",
            backgroundColor = "#0066AA",
            layout_width = "wrap_content",
            layout_height = "wrap_content",
            layout_margin = "5dp",
            onClick = function()
                if versiculosAtuais and indiceAtual < #versiculosAtuais then
                    indiceAtual = indiceAtual + 1
                    local versiculo = versiculosAtuais[indiceAtual]
                    local texto = string.format(
                        "📖 Versículo %d de %d:\n\n%s\n\nReferência: %s\n",
                        indiceAtual, #versiculosAtuais, versiculo.texto, versiculo.referencia
                    )
                    textoResposta.setText(texto)
                    service.speak(versiculo.texto)
                else
                    textoResposta.setText("Este é o último versículo ou nenhum arquivo carregado!")
                    service.speak("Este é o último versículo ou nenhum arquivo carregado!")
                end
            end,
        },
    },
    {
        Button,
        text = "Versículo Aleatório",
        textColor = "#ffffff",
        backgroundColor = "#FF8800",
        layout_width = "match_parent",
        layout_height = "wrap_content",
        layout_margin = "10dp",
        onClick = function()
            exibirVersiculoAleatorio()
        end,
    },
    {
        LinearLayout,
        orientation = "horizontal",
        layout_width = "match_parent",
        layout_height = "wrap_content",
        gravity = "center",
        layout_margin = "10dp",
        {
            Button,
            id = "botaoVelhoTestamento",
            text = "Velho Testamento",
            textColor = "#ffffff",
            backgroundColor = "#880088",
            layout_width = "wrap_content",
            layout_height = "wrap_content",
            layout_margin = "5dp",
            onClick = function(view)
                local popup = PopupMenu(context, view)
                local menu = popup.getMenu()
                local livrosVT = {
                    "GÊNESIS", "ÊXODO", "LEVÍTICO", "NÚMEROS", "DEUTERONÔMIO",
                    "JOSUÉ", "JUÍZES", "RUTE", "I SAMUEL", "II SAMUEL",
                    "I REIS", "II REIS", "I CRÔNICAS", "II CRÔNICAS", "ESDRAS",
                    "NEEMIAS", "ESTER", "JÓ", "SALMOS", "PROVÉRBIOS",
                    "ECLESIASTES", "CANTARES", "ISAÍAS", "JEREMIAS", "LAMENTAÇÕES",
                    "EZEQUIEL", "DANIEL", "OSEIAS", "JOEL", "AMÓS",
                    "OBADIAS", "JONAS", "MIQUEIAS", "NAUM", "HABACUQUE",
                    "SOFONIAS", "AGEU", "ZACARIAS", "MALAQUIAS"
                }
                for i, livro in ipairs(livrosVT) do
                    menu.add(0, i, 0, livro)
                end
                popup.setOnMenuItemClickListener(function(item)
                    livroSelecionado = livrosVT[item.getItemId()]
                    botaoVelhoTestamento.setText(livroSelecionado)
                    campoCapitulo.requestFocus()
                    service.speak("Livro selecionado: " .. livroSelecionado)
                    botaoNovoTestamento.setText("Novo Testamento")
                    return true
                end)
                popup.show()
            end,
        },
        {
            Button,
            id = "botaoNovoTestamento",
            text = "Novo Testamento",
            textColor = "#ffffff",
            backgroundColor = "#880088",
            layout_width = "wrap_content",
            layout_height = "wrap_content",
            layout_margin = "5dp",
            onClick = function(view)
                local popup = PopupMenu(context, view)
                local menu = popup.getMenu()
                local livrosNT = {
                    "MATEUS", "MARCOS", "LUCAS", "JOÃO", "ATOS",
                    "ROMANOS", "I CORINTIOS", "II CORINTIOS", "GÁLATAS", "EFESIOS",
                    "FILIPENSES", "COLOSSENSES", "I TESSALONICENSES", "II TESSALONICENSES", "I TIMÓTEO",
                    "II TIMÓTEO", "TITO", "FILEMOM", "HEBREUS", "TIAGO",
                    "I PEDRO", "II PEDRO", "I JOÃO", "II JOÃO", "III JOÃO",
                    "JUDAS", "APOCALIPSE"
                }
                for i, livro in ipairs(livrosNT) do
                    menu.add(0, i, 0, livro)
                end
                popup.setOnMenuItemClickListener(function(item)
                    livroSelecionado = livrosNT[item.getItemId()]
                    botaoNovoTestamento.setText(livroSelecionado)
                    campoCapitulo.requestFocus()
                    service.speak("Livro selecionado: " .. livroSelecionado)
                    botaoVelhoTestamento.setText("Velho Testamento")
                    return true
                end)
                popup.show()
            end,
        },
    },
    {
        LinearLayout,
        orientation = "horizontal",
        layout_width = "match_parent",
        layout_height = "wrap_content",
        gravity = "center",
        layout_margin = "10dp",
        {
            EditText,
            id = "campoCapitulo",
            hint = "Capítulo",
            textColor = "#ffffff",
            hintTextColor = "#888888",
            layout_width = "100dp",
            layout_height = "wrap_content",
            inputType = "number",
            textSize = "16sp",
            layout_marginRight = "10dp",
        },
        {
            EditText,
            id = "campoVersiculo",
            hint = "Versículo",
            textColor = "#ffffff",
            hintTextColor = "#888888",
            layout_width = "100dp",
            layout_height = "wrap_content",
            inputType = "number",
            textSize = "16sp",
        },
        {
            Button,
            text = "Ir",
            textColor = "#ffffff",
            backgroundColor = "#0066AA",
            layout_width = "wrap_content",
            layout_height = "wrap_content",
            layout_marginLeft = "10dp",
            onClick = function()
                local capitulo = tonumber(campoCapitulo.getText().toString())
                local versiculoNum = tonumber(campoVersiculo.getText().toString())
                if versiculosAtuais and capitulo and versiculoNum and livroSelecionado then
                    for i, versiculo in ipairs(versiculosAtuais) do
                        local livro, cap, ver = versiculo.referencia:match("^(.-)%s(%d+):(%d+)$")
                        if livro and livro == livroSelecionado and 
                           tonumber(cap) == capitulo and 
                           tonumber(ver) == versiculoNum then
                            indiceAtual = i
                            local texto = string.format(
                                "📖 Versículo %d de %d:\n\n%s\n\nReferência: %s\n",
                                indiceAtual, #versiculosAtuais, versiculo.texto, versiculo.referencia
                            )
                            textoResposta.setText(texto)
                            service.speak(versiculo.texto)
                            campoCapitulo.clearFocus()
                            campoVersiculo.clearFocus()
                            esconderTeclado(campoCapitulo)
                            campoCapitulo.setText("")
                            campoVersiculo.setText("")
                            return
                        end
                    end
                    textoResposta.setText("Versículo não encontrado no livro " .. livroSelecionado .. "!")
                    service.speak("Versículo não encontrado no livro " .. livroSelecionado .. "!")
                else
                    textoResposta.setText("Selecione um livro e digite um capítulo e versículo válidos!")
                    service.speak("Selecione um livro e digite um capítulo e versículo válidos!")
                end
                campoCapitulo.clearFocus()
                campoVersiculo.clearFocus()
                esconderTeclado(campoCapitulo)
            end,
        },
    },
    {
        LinearLayout,
        orientation = "horizontal",
        layout_width = "match_parent",
        layout_height = "wrap_content",
        gravity = "center",
        layout_margin = "10dp",
        {
            Button,
            text = "Sair",
            backgroundColor = "#AA0000",
            textColor = "#ffffff",
            layout_width = "wrap_content",
            layout_height = "wrap_content",
            layout_margin = "5dp",
            onClick = function()
                dlg.dismiss()
            end,
        },
        {
            Button,
            text = "Ir para página de Capítulos",
            textColor = "#ffffff",
            backgroundColor = "#880088",
            layout_width = "wrap_content",
            layout_height = "wrap_content",
            layout_margin = "5dp",
            onClick = function()
                layout1.setVisibility(View.GONE)
                layout2.setVisibility(View.VISIBLE)
            end,
        },
    },
}

-- Segundo Layout
local layout2Def = {
    LinearLayout,
    orientation = "vertical",
    layout_width = "match_parent",
    layout_height = "match_parent",
    backgroundColor = "#000000",
    padding = "10dp",
    id = "layout2",
    visibility = "gone",
    {
        ScrollView,
        layout_width = "match_parent",
        layout_height = "0dp",
        layout_weight = "1",
        {
            LinearLayout,
            orientation = "vertical",
            layout_width = "match_parent",
            layout_height = "wrap_content",
            {
                TextView,
                id = "textoCapitulo",
                layout_width = "match_parent",
                layout_height = "wrap_content",
                text = "Selecione um livro e capítulo para exibir.",
                textSize = "16sp",
                textColor = "#ffffff",
                padding = "10dp",
            },
        },
    },
    {
        LinearLayout,
        orientation = "horizontal",
        layout_width = "match_parent",
        layout_height = "wrap_content",
        gravity = "center",
        layout_margin = "10dp",
        {
            Button,
            id = "botaoVelhoTestamento2",
            text = "Velho Testamento",
            textColor = "#ffffff",
            backgroundColor = "#880088",
            layout_width = "wrap_content",
            layout_height = "wrap_content",
            layout_margin = "5dp",
            onClick = function(view)
                local popup = PopupMenu(context, view)
                local menu = popup.getMenu()
                local livrosVT = {
                    "GÊNESIS", "ÊXODO", "LEVÍTICO", "NÚMEROS", "DEUTERONÔMIO",
                    "JOSUÉ", "JUÍZES", "RUTE", "I SAMUEL", "II SAMUEL",
                    "I REIS", "II REIS", "I CRÔNICAS", "II CRÔNICAS", "ESDRAS",
                    "NEEMIAS", "ESTER", "JÓ", "SALMOS", "PROVÉRBIOS",
                    "ECLESIASTES", "CANTARES", "ISAÍAS", "JEREMIAS", "LAMENTAÇÕES",
                    "EZEQUIEL", "DANIEL", "OSEIAS", "JOEL", "AMÓS",
                    "OBADIAS", "JONAS", "MIQUEIAS", "NAUM", "HABACUQUE",
                    "SOFONIAS", "AGEU", "ZACARIAS", "MALAQUIAS"
                }
                for i, livro in ipairs(livrosVT) do
                    menu.add(0, i, 0, livro)
                end
                popup.setOnMenuItemClickListener(function(item)
                    livroSelecionado = livrosVT[item.getItemId()]
                    botaoVelhoTestamento2.setText(livroSelecionado)
                    botaoNovoTestamento2.setText("Novo Testamento")
                    campoCapitulo2.requestFocus()
                    service.speak("Livro selecionado: " .. livroSelecionado)
                    return true
                end)
                popup.show()
            end,
        },
        {
            Button,
            id = "botaoNovoTestamento2",
            text = "Novo Testamento",
            textColor = "#ffffff",
            backgroundColor = "#880088",
            layout_width = "wrap_content",
            layout_height = "wrap_content",
            layout_margin = "5dp",
            onClick = function(view)
                local popup = PopupMenu(context, view)
                local menu = popup.getMenu()
                local livrosNT = {
                    "MATEUS", "MARCOS", "LUCAS", "JOÃO", "ATOS",
                    "ROMANOS", "I CORINTIOS", "II CORINTIOS", "GÁLATAS", "EFESIOS",
                    "FILIPENSES", "COLOSSENSES", "I TESSALONICENSES", "II TESSALONICENSES", "I TIMÓTEO",
                    "II TIMÓTEO", "TITO", "FILEMOM", "HEBREUS", "TIAGO",
                    "I PEDRO", "II PEDRO", "I JOÃO", "II JOÃO", "III JOÃO",
                    "JUDAS", "APOCALIPSE"
                }
                for i, livro in ipairs(livrosNT) do
                    menu.add(0, i, 0, livro)
                end
                popup.setOnMenuItemClickListener(function(item)
                    livroSelecionado = livrosNT[item.getItemId()]
                    botaoNovoTestamento2.setText(livroSelecionado)
                    botaoVelhoTestamento2.setText("Velho Testamento")
                    campoCapitulo2.requestFocus()
                    service.speak("Livro selecionado: " .. livroSelecionado)
                    return true
                end)
                popup.show()
            end,
        },
    },
    {
        LinearLayout,
        orientation = "horizontal",
        layout_width = "match_parent",
        layout_height = "wrap_content",
        gravity = "center",
        layout_margin = "10dp",
        {
            EditText,
            id = "campoCapitulo2",
            hint = "Capítulo",
            textColor = "#ffffff",
            hintTextColor = "#888888",
            layout_width = "100dp",
            layout_height = "wrap_content",
            inputType = "number",
            textSize = "16sp",
            layout_marginRight = "10dp",
        },
        {
            Button,
            text = "Ir",
            textColor = "#ffffff",
            backgroundColor = "#0066AA",
            layout_width = "wrap_content",
            layout_height = "wrap_content",
            onClick = function()
                local capitulo = tonumber(campoCapitulo2.getText().toString())
                if versiculosAtuais and livroSelecionado and capitulo then
                    local textoCapituloCompleto = ""
                    for _, versiculo in ipairs(versiculosAtuais) do
                        if versiculo.livro == livroSelecionado and tonumber(versiculo.capitulo) == capitulo then
                            textoCapituloCompleto = textoCapituloCompleto .. versiculo.texto .. " "
                        end
                    end
                    if textoCapituloCompleto ~= "" then
                        textoCapitulo.setText(string.format("📖 %s %d\n\n%s", livroSelecionado, capitulo, textoCapituloCompleto))
                    else
                        textoCapitulo.setText("Capítulo não encontrado!")
                        service.speak("Capítulo não encontrado!")
                    end
                else
                    textoCapitulo.setText("Selecione um livro e digite um capítulo válido!")
                    service.speak("Selecione um livro e digite um capítulo válido!")
                end
                campoCapitulo2.clearFocus()
                esconderTeclado(campoCapitulo2)
            end,
        },
    },
    {
        LinearLayout,
        orientation = "horizontal",
        layout_width = "match_parent",
        layout_height = "wrap_content",
        gravity = "center",
        layout_margin = "10dp",
        {
            Button,
            text = "Ouvir",
            textColor = "#ffffff",
            backgroundColor = "#0066AA",
            layout_width = "wrap_content",
            layout_height = "wrap_content",
            layout_margin = "5dp",
            onClick = function()
                local capitulo = tonumber(campoCapitulo2.getText().toString())
                if versiculosAtuais and livroSelecionado and capitulo then
                    local textoCapituloCompleto = ""
                    for _, versiculo in ipairs(versiculosAtuais) do
                        if versiculo.livro == livroSelecionado and tonumber(versiculo.capitulo) == capitulo then
                            textoCapituloCompleto = textoCapituloCompleto .. versiculo.texto .. " "
                        end
                    end
                    if textoCapituloCompleto ~= "" then
                        service.speak(textoCapituloCompleto)
                    else
                        textoCapitulo.setText("Capítulo não encontrado!")
                        service.speak("Capítulo não encontrado!")
                    end
                else
                    textoCapitulo.setText("Selecione um livro e digite um capítulo válido!")
                    service.speak("Selecione um livro e digite um capítulo válido!")
                end
            end,
        },
    },
    -- Novo LinearLayout para os botões "Capítulo Anterior" e "Próximo Capítulo"
    {
        LinearLayout,
        orientation = "horizontal",
        layout_width = "match_parent",
        layout_height = "wrap_content",
        gravity = "center",
        layout_margin = "10dp",
        {
            Button,
            text = "Capítulo Anterior",
            id = "botaoCapituloAnterior",
            textColor = "#ffffff",
            backgroundColor = "#0066AA",
            layout_width = "wrap_content",
            layout_height = "wrap_content",
            layout_margin = "5dp",
            onClick = function()
                local capituloAtual = tonumber(campoCapitulo2.getText().toString())
                if versiculosAtuais and livroSelecionado and capituloAtual and capituloAtual > 1 then
                    local novoCapitulo = capituloAtual - 1
                    campoCapitulo2.setText(tostring(novoCapitulo))
                    local textoCapituloCompleto = ""
                    for _, versiculo in ipairs(versiculosAtuais) do
                        if versiculo.livro == livroSelecionado and tonumber(versiculo.capitulo) == novoCapitulo then
                            textoCapituloCompleto = textoCapituloCompleto .. versiculo.texto .. " "
                        end
                    end
                    if textoCapituloCompleto ~= "" then
                        textoCapitulo.setText(string.format("📖 %s %d\n\n%s", livroSelecionado, novoCapitulo, textoCapituloCompleto))
                        service.speak("Capítulo " .. novoCapitulo)
                    else
                        textoCapitulo.setText("Capítulo " .. novoCapitulo .. " não encontrado!")
                        service.speak("Capítulo " .. novoCapitulo .. " não encontrado!")
                    end
                else
                    textoCapitulo.setText("Este é o primeiro capítulo ou nenhum livro selecionado!")
                    service.speak("Este é o primeiro capítulo ou nenhum livro selecionado!")
                end
            end,
        },
        {
            Button,
            text = "Próximo Capítulo",
            id = "botaoProximoCapitulo",
            textColor = "#ffffff",
            backgroundColor = "#0066AA",
            layout_width = "wrap_content",
            layout_height = "wrap_content",
            layout_margin = "5dp",
            onClick = function()
                local capituloAtual = tonumber(campoCapitulo2.getText().toString())
                if versiculosAtuais and livroSelecionado and capituloAtual then
                    local novoCapitulo = capituloAtual + 1
                    campoCapitulo2.setText(tostring(novoCapitulo))
                    local textoCapituloCompleto = ""
                    for _, versiculo in ipairs(versiculosAtuais) do
                        if versiculo.livro == livroSelecionado and tonumber(versiculo.capitulo) == novoCapitulo then
                            textoCapituloCompleto = textoCapituloCompleto .. versiculo.texto .. " "
                        end
                    end
                    if textoCapituloCompleto ~= "" then
                        textoCapitulo.setText(string.format("📖 %s %d\n\n%s", livroSelecionado, novoCapitulo, textoCapituloCompleto))
                        service.speak("Capítulo " .. novoCapitulo)
                    else
                        textoCapitulo.setText("Capítulo " .. novoCapitulo .. " não encontrado!")
                        service.speak("Capítulo " .. novoCapitulo .. " não encontrado!")
                    end
                else
                    textoCapitulo.setText("Selecione um livro e capítulo válido primeiro!")
                    service.speak("Selecione um livro e capítulo válido primeiro!")
                end
            end,
        },
    },
    {
        Button,
        text = "Voltar para a página de Versículos",
        textColor = "#ffffff",
        backgroundColor = "#880088",
        layout_width = "match_parent",
        layout_height = "wrap_content",
        layout_margin = "10dp",
        onClick = function()
            layout2.setVisibility(View.GONE)
            layout1.setVisibility(View.VISIBLE)
        end,
    },
    {
        Button,
        text = "Sair",
        backgroundColor = "#AA0000",
        textColor = "#ffffff",
        layout_width = "match_parent",
        layout_height = "wrap_content",
        layout_margin = "10dp",
        onClick = function()
            dlg.dismiss()
        end,
    },
}

-- Layout principal
mainLayout = {
    LinearLayout,
    orientation = "vertical",
    layout_width = "match_parent",
    layout_height = "match_parent",
    layout1Def,
    layout2Def,
}

-- Inicialização do diálogo principal
dlg = LuaDialog()
dlg.setTitle("Versículos Bíblicos desenvolvido por Marcos Souza")
local view = loadlayout(mainLayout)
dlg.setView(view)
dlg.show()

-- Inicialização dos dados
criarPasta()
versiculosAtuais = carregarVersiculosDaPasta()
service.speak("Bem-vindo ao aplicativo de Versículos Bíblicos. Carregando versículos...")
if versiculosAtuais then
    service.speak("Versículos carregados com sucesso")
    exibirVersiculoAleatorio()
else
    textoResposta.setText("Erro ao carregar os versículos. Verifique o arquivo 'biblia.txt' em " .. pastaFrasesBiblicas)
    service.speak("Erro ao carregar os versículos.")
end